package com.member.mp.aop;

import java.lang.annotation.*;

/**
 * @author mjyang
 * @date 2022/4/1 11:02
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DistributeLock {

    /**
     * 缓存 key 前缀，必填
     * @return String
     */
    String prefix() default "";

    /**
     * 是否追加 userId 到 cacheKey 中
     * @return boolean
     */
    boolean appendUserId() default false;

    /**
     * 缓存 key，为空，默认取方法上的参数做为key
     * @return String
     */
    String cacheKey() default "";

    /**
     * 缓存秒数
     * @return int
     */
    int lockTime() default 1;
}
